import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 杨已萱
 * Date: 2022-11-28
 * Time: 16:16
 */
public class text {
    //------------------------------------我不会----------------------------------------------------
    public static void main(String[] args) {//创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
        int i = 0;
        int [] arr = new int[]{i};
        for (; i <= 100 ; i++) {
            System.out.println(arr[i]);
        }
//        int [] arr =new int[100];
//        for (int i = 0; i < 100; i++) {
//            System.out.println(arr[i]);//下标的方式；打印都是0
//
//        }
//        int [] arr ={0};
//        for (int i = 0; i <= 100; i++) {
//            System.out.println(arr[99]);
//        }
//------------------------------------我不会-------------------------------------------------------------
    }
    public static int fibo(int n){//递归求斐波那契数列的第 N 项n 是项数1 1 2 3 5 8 13 21
        if(n == 1 ||n == 2){
            return 1;
        }
        return fibo(n - 1) +fibo(n - 2);
    }

    public static void main7(String[] args) {
        System.out.println(fibo(6));
    }
    public static int sum2(int n) {//写一个递归方法，输入一个非负整数，返回组成它的数字之和1729
        if(n <= 9){
            return n;
        }
        return n % 10 + sum2(n /10);
    }

    public static void main6(String[] args) {
        System.out.println(sum2(1729));
    }
    public static int function2(int n){//按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) （递归）
        if(n <= 9){
            System.out.println(n);
            return n;
        }
        int ret = n % 10;
        function2(n / 10);
        System.out.println(ret);
        return n;
    }

    public static void main5(String[] args) {
        function2(1234);
    }

    public static int sum(int n){
        if(n ==1){
            return 1;
        }
        return n +sum(n - 1);
    }

    public static void main4(String[] args) {
        System.out.println(sum(10));
    }
    public static int function1(int n){//递归求 N 的阶乘
        if(n == 1){
//            System.out.println(n);
            return 1;
        }
        return n*function1(n-1);

    }

    public static void main3(String[] args) {
        System.out.println(function1(4));
    }
    public static void main2(String[] args) {
        int [] array ={1,2,3,4,5,6,7,8};
        int [] array2 =new int[]{1,2,3,4,5,6,7,8};
//        int [] array3 =
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        System.out.println("------------------");
        for(int x : array){//冒号
            System.out.println(x);
        }
        System.out.println("------------------");
        String ret = Arrays.toString(array);
        System.out.println(ret);

    }
    public static int func2(int n){//2.输入 1729打印1+7+2+9
        if (n <= 9){
            return n;
        }
        return n % 10 +func2(n / 10);
    }
    public static int func1(int n){//1.按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)
        if(n > 9){
            func1(n / 10);
        }
//        System.out.println(n % 10);
        return n ;//如果是void不需要return，如果是int 需要return n
    }


    public static void main1(String[] args) {
        //func1(1234);//讲义3.3递归练习1
        System.out.println(func2(1729));

       // System.out.println(func1(1234));//1.
    }
}